package com.ljf.daily.softwareautorecord.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import com.ljf.config.annotation.AutoCode;
import com.ljf.daily.softwareautorecord.enums.DailyDatSoftwareAutoRecordModeTypeEnum;
import com.ljf.daily.softwareautorecord.enums.DailyDatSoftwareAutoRecordAmountHistoryEnum;
import com.ljf.daily.softwareautorecord.enums.DailyDatSoftwareAutoRecordAutoExecutionEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 赚钱软件自动记录对象  daily_dat_software_auto_record
 *
 * @author LJF
 * @since 2024-12-14
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("赚钱软件自动记录")
@EqualsAndHashCode(callSuper = true)
@TableName("daily_dat_software_auto_record")
public class DailyDatSoftwareAutoRecord extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link DailyDatSoftwareAutoRecord#COL_ID}
	 */
	@TableId(value="id", type= IdType.AUTO)
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 编码
	 * {@link DailyDatSoftwareAutoRecord#COL_CODE}
	 */
	@AutoCode
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 软件编码
	 * {@link DailyDatSoftwareAutoRecord#COL_SOFTWARE_CODE}
	 */
	@TableField("software_code")
	@JsonProperty("softwareCode")
	@ApiModelProperty(value = "软件编码")
	private String softwareCode;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 模式类型(1:按天执行;2:按月执行;3:按年执行)
	 * {@link DailyDatSoftwareAutoRecord#COL_MODE_TYPE}
	 * {@link DailyDatSoftwareAutoRecordModeTypeEnum}
	 */
	@TableField("mode_type")
	@JsonProperty("modeType")
	@ApiModelProperty(value = "模式类型(1:按天执行;2:按月执行;3:按年执行)")
	private Integer modeType;

	/**
	 * Java类型: Integer
	 * 数据库类型: smallint
	 * 注释: 执行日期
	 * {@link DailyDatSoftwareAutoRecord#COL_EXECUTION_DATE}
	 */
	@TableField("execution_date")
	@JsonProperty("executionDate")
	@ApiModelProperty(value = "执行日期")
	private Integer executionDate;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 时间偏移量
	 * {@link DailyDatSoftwareAutoRecord#COL_DATE_OFFSET}
	 */
	@TableField("date_offset")
	@JsonProperty("dateOffset")
	@ApiModelProperty(value = "时间偏移量")
	private Integer dateOffset;

	/**
	 * Java类型: String
	 * 数据库类型: char(10)
	 * 注释: 标签编码
	 * {@link DailyDatSoftwareAutoRecord#COL_SYMBOL_CODE}
	 */
	@TableField("symbol_code")
	@JsonProperty("symbolCode")
	@ApiModelProperty(value = "标签编码")
	private String symbolCode;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(20)
	 * 注释: 备注
	 * {@link DailyDatSoftwareAutoRecord#COL_REMARK}
	 */
	@TableField("remark")
	@JsonProperty("remark")
	@ApiModelProperty(value = "备注")
	private String remark;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 自动执行(1:是;2:否)
	 * {@link DailyDatSoftwareAutoRecord#COL_AUTO_EXECUTION}
	 * {@link DailyDatSoftwareAutoRecordAutoExecutionEnum}
	 */
	@TableField("auto_execution")
	@JsonProperty("autoExecution")
	@ApiModelProperty(value = "自动执行(1:是;2:否)")
	private Integer autoExecution;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 金额历史(1:最新值;2:固定值)
	 * {@link DailyDatSoftwareAutoRecord#COL_AMOUNT_HISTORY}
	 * {@link DailyDatSoftwareAutoRecordAmountHistoryEnum}
	 */
	@TableField("amount_history")
	@JsonProperty("amountHistory")
	@ApiModelProperty(value = "金额历史(1:最新值;2:固定值)")
	private Integer amountHistory;


	/**
	 * ID
	 * {@link DailyDatSoftwareAutoRecord#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 编码
	 * {@link DailyDatSoftwareAutoRecord#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * 软件编码
	 * {@link DailyDatSoftwareAutoRecord#softwareCode}
	 */
	public static final String COL_SOFTWARE_CODE = "software_code";
	/**
	 * 模式类型(1:按天执行;2:按月执行;3:按年执行)
	 * {@link DailyDatSoftwareAutoRecord#modeType}
	 */
	public static final String COL_MODE_TYPE = "mode_type";
	/**
	 * 执行日期
	 * {@link DailyDatSoftwareAutoRecord#executionDate}
	 */
	public static final String COL_EXECUTION_DATE = "execution_date";
	/**
	 * 时间偏移量
	 * {@link DailyDatSoftwareAutoRecord#dateOffset}
	 */
	public static final String COL_DATE_OFFSET = "date_offset";
	/**
	 * 标签编码
	 * {@link DailyDatSoftwareAutoRecord#symbolCode}
	 */
	public static final String COL_SYMBOL_CODE = "symbol_code";
	/**
	 * 备注
	 * {@link DailyDatSoftwareAutoRecord#remark}
	 */
	public static final String COL_REMARK = "remark";
	/**
	 * 自动执行(1:是;2:否)
	 * {@link DailyDatSoftwareAutoRecord#autoExecution}
	 */
	public static final String COL_AUTO_EXECUTION = "auto_execution";
	/**
	 * 金额历史(1:最新值;2:固定值)
	 * {@link DailyDatSoftwareAutoRecord#amountHistory}
	 */
	public static final String COL_AMOUNT_HISTORY = "amount_history";

}
